perm filename SCORE.LCS[UP,DOC]21 blob
sn#323800 filedate 1977-12-20 generic text, type T, neo UTF8
**************** SCORE MANUAL ******************
********** SECTION 1 **********
The program 'SCORE' was written by Leland Smith. It creates note
lists for the PDP10 sound generation program.
'SCORE' accomodates several instruments (27) with 30 parameters per
instrument. To take full advantage of this program an initialization
file must be read into the sound program giving values for musical
note letters, etc. The file 'INIT.LCS' has the necessary material.
(MUSIC, on the system, already has INIT.LCS in it.)
You must create the input file for SCORE with the ET or SOS editor.
The name of the edit file can use no more than five letters. The
output of SCORE will use the same name but the extension .SCR will
be added.
Input for each parameter must end with a semicolon. Comments may be
typed after the sign < . Lines under 'EDIT', PRECEDE or 'INSERT' do
not need a semicolon. 'RUN;' will end the note list. In general,
lines should include no more than 72 characters before comments.
All lines must begin in column one. All blank lines will be ignored.
Generally commas and = will be equivalent to blanks.
The first line should contain the name of instrument 1, followed by
its begin time and end time. An instrument name cannot use more
than 5 characters.
The first begin time is always given in seconds. If no end time is
given, a 'FINE' (the musical term for 'end') must appear at the end
of one of the lists of items for that instrument. (see Sec. 5.) The
end time may be set either in seconds or number of notes.
SECONDS: If only 2 numbers are typed, the 2nd will set the end
time, in seconds, for that instrument.
NUMBER OF NOTES: If the end time is to be set in terms of the
total number of notes, type the begin time, a dummy number
and the total number of notes for that instrument.
Examples:
BUZZ 0,32; Inst1 is BUZZ, BG time=0", end time=32".
(data for 'BUZZ' follows.)
ZAP 2,28; Inst2, BG time=2", last note will start before
time 28". (data for 'ZAP' follows.)
ZAP2 0 0 42; Inst3 is ZAP2, BG time=0", end time=42 notes.
(data for 'ZAP2' follows.)
HISS ; Inst4 begins at time 0". It ends when an item list ends.
(see pg5).
(data for 'HISS' follows.)
Note that when the end time is given in seconds it means only that
the last note to be played by that instrument will begin no later
than the indicated end time. It can often happen that the duration
of the last note can extend beyond the given total end time. This is
almost certain to happen when random note durations are used. If the
precise ending time is crucial it must be carefully checked. See
Section 9 re. 'CUTOFF'.
Later changes in parameter data for an instrument must be preceded by
the instrument name and the time at which that data change will take
effect. If the time is to be in seconds, only one number should
appear.
If the data is to start on a specific note, type an
instrument number and the particular note number of that instrument
desired.
After the entries for each begin time are complete, the word
'END' must appear before another instrument is dealt with. 'RUN;' may
replace 'END;' if there is no more data to come. 'RUN' must be the
last item of the note list.
Example: BUZZ 3,13; data begins on note 13 of instrument 3.
(i.e. ZAP2)
--
-- END ; End this data for BUZZ
RUN ; No more data. run the score.
****---- SOME CONVENTIONS REGARDING PARAMETER NUMBERS ----****
In specifying the parameters for your instruments, P3 is best
reserved for center frequency and P4 for amplitude.
(See 'AMPFAC', sect. 12)
RESTART:
Sometimes it may be desireable to restart an instrument after an
extended rest. If the exact duration of the rest is known it is best
simply to enter the rest as a minus number in P2 (see Sec.4).
However, if the duration of the rest is not easy to predict because
of the use of random selection or other reasons, the instrument may
be 'restarted'. In this case the instrument name must be followed
by the word 'RESTART' and the then the 2 or 3 numbeers needed to
establish this new begin time and end time, as noted above.
When this feature is used this instrument name will be given the next
available number in the instrument list (up to 27) and any references
to it after the restart time must use this new number.
Example:
TOOT 0 20; TOOT will play for at least 20"
- - -
- - -
- - - ;END;
TOOT RESTART 28 0 15; TOOT will restart at time 28"
- - - and play 15 more notes.
- - -
- - - ;END;
********** SECTION 2 **********
If data for a parameter is to remain the same for several notes it
should be entered as follows:
P5 .73; P5 will be .73 until changed.
P6 100.2; Note that only 2 places beyond the decimal
point will print in this manner. If for some
reason more places are desired make use of
quotes as described below.
P3 CS5; P3, C# of the 5th octave. (notes of the
tempered scale used are from C1(=lowest C on
piano keyboard)to B7(=highest B). S=#, F=flat
P7 "10*P5"; Any string surrounded by quotes will be
P8 "1.0207"; literally reproduced in the score.
P9 P6; P9 will always have the same data as P6. No
quotes needed. (See also LISTS OF NUMBERS
in Section 5.)
P8 F14; F14 remains until changed. (F1 through F15
can be used. For higher function numbers use
quotes: ("F19")
****Note that any F which appears in this context will be
taken as a function number. The pitch class F may
not appear as a single item unless it is surrounded
by quotes. ("F")
The highest parameter number used by the instrument must appear in
the data list even if its input is to be a zero.
Example:
P2 1; ***** SLASHES (also see Sec.12) ****
P3 C4; All this data could appear on one line.
e.g. P2 1; P3 C4; P5 100; P7 0; END;
P5 100; P4 will be zero
P7 0; P6 will also be zero
END ;
** Possible range of numbers. ---- Because of internal peculiarities
in SCORE no numbers less than -9998 or greater than 999998 may be
used. However smaller or larger numbers may appear in quotes.
******* Following is an example of a complete page of input. ******
The use of the code words RHY, NOTES and TEMPO are explained later.
ASSUME THAT THE EDIT FILE NAME IS 'SCALE'.
(THE OUTPUT WILL BE ON 'SCALE.SCR'.)
SCALE *** This creates the score for a C-major scale with bass.
(SINCE NOTHING APPEARS IN COLUMN 1, THE ABOVE WILL BE IGNORED.)
TOOT 0 1 8; < BG time=0, inst 1 plays 8 notes.
P2 RHY/8/16//8//4//2; < Rhythm is 8th, 2 16ths, 2 8ths, 2 quarters,
half. See section 4 and following for use
of 'RHY', 'NOTES', etc.
P3 NOTES/C4/D/E/F/G/A/B/C5; < Scale goes up from middle C.
P4 500; P5 F2; END;< Ampl(P4)=500, envelope is sostenuto (F2).
CLAR 0 2 5; P2 RHY/4 X 4/2; < 4 quarters and 1 half.
P3 NOTES/C3/A/F/G/C;<Bass notes
P4 450; P5 F3; END;< F3 will give semi-staccato.
TEMPO/ 96 ; < MM=96
RUN;
********** SECTION 3 **********
***** RANDOM SELECTION *****
If random selection is desired, type at least 3 numbers after the
parameter number. The first number will be a percentage (as 1
[=100%] or .76 [=76%]) and the next two will set the limits of the
random selection. e.g. '1 200,300' means 100% of the time a number
between 200 and 300 will be chosen. Several random selection ranges
may be typed for a single parameter, but
%%%% only two lines of 72 characters each may be used. %%%%
If a second line is needed, the first one must not end with ;
Care must be taken that the sum of the first numbers of each set of 3
is exactly 1 (=100%).
In the following example for P5, 50% of the time a number between 20
and 100 will be chosen, 10% of the time between 0 and .7, 10% of the
time the number 200, 25% of the time between 107 and 115 and 5% of
the time the number 1000.
P5 .5 20,100 .1 0,.7 .1 200,200 .25 107,115 .05 1000,1000;
(71 spaces used.)
If random selection of tempered scale notes is desired, use note
names instead of numbers.
Example:
P3 .5 C2,C3 .2 FS4,FS .3 D6,F;< If no octave number is given, the
last listed applies.
(Function numbers may not be dealt with in the above manner.)
Individual literal statements may be selected at random using the
following form.
P7 .2 "P3*100" .3 "440" .5 "P3+POWER(P6,2)";
<POWER is a function in the MUSIC program, =n1 to the power of n2.
P5 .6 "F1" .4 "F2" ; <60%:40% random choice of functions.
The strings are surrounded by quotes and may have any number of
characters. The percentage numbers in the example above must add up
to 1 (100%) and and all such random data must appear on a single
line. Data consisting of ordinary numbers, or notes cannot be mixed
with literal strings.
***** P31 RANDOM TEMPO FACTOR *****
When P31 is set, the number will represent the maximum time
deviation, + or -, of the note duration numbers found in P2. Note
that the deviation is in terms of BASIC TIME, hence a tempo change
will not produce a change in the range of deviation. Check carefully
the results of using P31.
Example: P31 .06;< Up to 6/100" random tempo deviation.
The 'ALL' feature does not! work with P31.
***** P32 RANDOM RESTS *****
Random rests may be entered by calling for parameter P32. Any
number from 0 to 1. (0% to 100%) may be typed.
Example: P32 .15;
If .15 is typed, a random selection of 15% of the notes of that
instrument will have rests of durations set by P2. The 'MOVE' feature
(explained later) may be used with P32.
********** SECTION 4 **********
********** SPECIAL CODE WORDS **********
RHYTHM; (RH) [acceptable minimum abbreviations]
NOTES; (NO)
NUMBERS; (NU)
FUNCTIONS; (FU)
NAMES; (NA) Sequential list of inst. names.
RLIST; (RL) Sequential list of random num ranges.
RNOTES; (RN) Sequential list of random note ranges.
MOVE; (M) | The code word must immediately |
MOVX; (MX) | follow the parameter number. |
LITERAL; (L) | Example: P2 RHY/ |
DF; Duty factor.
REPEAT; (RE) OR (X)
CUTOFF; (CU)
SUBN;
SUBL;
Most non-random aspects of musical input will be made in terms of
lists of events. The code words RH, NO, NU, FU, LI are used for this
purpose. If you are using a list for input for P2 (RH or NU) and also
a list for P3 (NO or NU) and perhaps a list of functions (FU) in some
other parameter, in most cases you will want to have exactly the same
number of entries in all lists. A point of possible confusion arises
with the use of rests! All lists step forward for each new note
whether or not that "note" is a real sound or a silence. Thus if the
3rd entry in a list of notes is /R/ (for "rest") there obviously must
be a duration given for that rest in P2's list. It follows that if a
list of functions is given in P5, the 3rd entry will be a "dummy".
When typing in extended lists it is always a good idea to organize
the various lists according to some simple visual scheme. For
example, if the music involved has bar lines, their presence can be
shown by the use of 2 or 3 extra spaces at the appropriate points in
each list. You will come to appreciate any possible aids to proof
reading.
*********** RHY (FOR MUSICAL RHYTHMIC TERMINOLOGY) ***********
Entries under 'RHY' will always be in terms of the fractional part of
a whole note. Thus '4' represents a quarter note, '16' a 16th note,
'12' an 8th note triplet, etc. For dotted rhythms add dots to
numbers. Composites are entered by typing up to 5 numbers. To enter
a double dotted 8th note, type /8../, a dotted half tied to the first
of a triplet, /2.,12/, etc.
If several notes in a row have the same rhythm, type 'VALUE X N'
(where 'VALUE' is up to 5 numbers representing a rhythmic duration, X
is for 'TIMES' and 'N' is the number of equal values). Thus to repeat
15 dotted quarter notes, type /4. X 15/.
Complete rhythmic units must be separated by slashes. If no new entry
appears between slashes (or a slash and a semicolon) the last entry
will be repeated for each slash. Several lines may be used. Each
line but the last must end with a slash. The last line of a list
must end with ;. The semicolon may serve the double purpose of a
slash and the end of the string of entries.
Example: 4///8 X 9/2/; < 3 quarters, 9 eighths, 2 half notes.
-----------------------------------------------
Any group of varied rhythms may be repeated several times by entering
'REP' or 'X' and N1,N2. N1 will be the number of entries involved
and N2 will be the total number of times the group will occur. If no
2nd number appears, N2=2.
Example: 4/8 X 5/2./REP 7,3/2; The group of 7 rhythms,
1 quarter, 5 eighths and a dotted half will play 3 times.
Here 'REP' and 'X' are interchangeable and may also be used with
lists under 'NOTES','FUNC' and 'NUM'.
Type ';' to terminate a string of rhythmic entries before listing
data for another parameter.
For rests, the first number appearing must be negative. A whole note
rest plus a 16th rest would be entered as /-1,16/. Rests may also be
entered with 'NOTES'.
If fewer rhythms are entered than are required to make up the whole
duration of a section, the series given will loop until some new data
is entered. This will work the same way for any sequential lists of
data.
xxx TEMPO xxx
The tempo may be set for each instrument separately under P2, or for
all parts at once (the preferred method) after all other data is
entered. See SECTION 11 regarding use of TEMPO.
If the tempo is set under 'P2 RHY' use the following procedures.
Normally, 3 numbers will be given on each line. N1=duration N2=tempo
at start of dur. N3=tempo at end of dur. Up to 30 changes may be
made at a time. The tempo may be set in either of two ways.
Conventional metronome numbers may be used, (I.e. mm=the number of
quarter notes per minute), or the tempo may be set in terms of 'tempo
factors'. The 'tempo factor' 1 is equivalent to mm=60. 'Tempo
factors' must be less than 10, 'mm' numbers must be greater than 11.
If only one number is given after 'TEMPO' it will be taken as a fixed
tempo, not as a duration.
Example: TEMPO/ 96 ; < mm=96 unless changed at some later time.
If you type 11 45 120, the tempo will shift from the first tempo to
the second tempo during the course of the number of quarter notes
given. (The numbers 11 .75 2 will be taken as 'tempo factors' and
produce exactly the same results.) If you type two numbers, a third
number will be assumed as the same as the second number.
Example:P2 RHY/
TEMPO/10 84 112/ <Changes from mm=84 to mm=112
in 10 quarter notes.
5 112/ < Tempo will remain at 112 for 5 quarters.
108; < Tempo will stay at 108. must end with ';.
4/8//4/16/etc. < Rhythm data must follow immediately.
(Note: It is probably more convenient to set the tempo changes for
all parts at once with the 'TEMPO' feature described on page 17. If
this is done it is best to omit 'TEMPO' data under 'P2 RHY;'. If
'TEMPO' is not mentioned, mm=60.)
********** SECTION 5 **********
************ NOTES (do not use with P2) *************
Use this code word to enter note letters.
When the file 'NOTES' has been read into the music program (already
present in MUS10), the program will understand the tempered scale as
follows. 'C4'=middle C, 'C3'=1 octave below,(prints as C/2) 'C2'
=two octaves below,(prints C/4) 'C1'=three octaves below, 'C5'=one
octave above, 'C6'=two octaves above, etc. 'CS'=C#,'GS'=G#,
'AF'=Ab, 'EF'=Eb, etc. If a rest is desired, type 'R' (with 'NOTES'
only).
Example: P3 NOTES/
C4/CS/R/D/DS//E// < Last 2 entries each play twice.
F X 6/ < 6 F's.
REP 7,4; < Last 7 entries play a total of 4 times.
';' ends the list.
Each octave is taken as starting with the note C. Normally, the
octave number, once given, will stick until a new octave number
appears. Thus, to move a 1/2 step B to C, /B3/C4/B3/C4/ must be
typed, whereas /E4/F/E/F/ also gives 1/2 steps.
A different, "PROXIMITY", mode may be used by typing 'P' in front of
the 1st note entered. This mode automatically chooses the following
octave numbers so as to produce the smallest intervals between notes.
/P B3/C/B/C/ gives 1/2 steps.
In this mode, skips up or down of greater than a perfect 4th must
include an octave number.
PROXIMITY mode may be left by typing 'O' (for ordinary) in front of a
note and its octave number. /O B3/C/ gives a major 7th.
If no duration is earlier specified (see pg 1) the list in 'NOTES'
must end with the word 'FINE'. 'FINE' may be used with 'NOTES',
'NUM', 'RHY' or 'FUNC'.
Example: P3 NOTES/A5/G/FS4/D/B3/FINE;
'FINE' ends NOTES (and sets duration at that point.)
******************** CHORDS *************************
Under special circumstances chords may be entered in 'NOTES'. It must
be remembered that in its current form 'MUSIC' does not allow a single
instrument to play more than one note at a time. With the 'SCORE'
program it is possible to get around this restriction because each
time an "overlap" is sensed the name of the instrument involved is
altered by raising the last letter in the name one step up the
alphabet. Thus if your instrument name were ZIPA and an overlap were
detected the next appearence of that instrument would be under the
name ZIPB, etc. There is a special program (DUPINS) for the purpose
of making duplicate instrument definitions with an alphabetical change
on the last letter of each name. For the use of 'DUPINS' see below.
To indicate chords the note names should be separated by colons
instead of slashes. The slashes then will still indicate the bounds
of each rhythmic unit. The various repeat features work with chords
as if they were individual notes. Chords may be included in 'MOTIVES'
(see Sec. 7.)
Example: The note sequence desired is C sharp, a chord of D, F, A,
and then the chord is repeated.
CLARA ;
P3 NOTES/ CS4/ D:F:A//
P2 RHY/8//4/
. . . .
. . . .
. . . .
END;
The 'SCORE' printout will appear as follows:
CLARA 0 .5 CS . . . . . . ;
CLARB .5 .5 D . . . . . . ;
CLARC .5 .5 F . . . . . . ;
CLARA .5 .5 A . . . . . . ;
CLARB 1 1 D . . . . . . ;
CLARC 1 1 F . . . . . . ;
CLARA 1 1 A . . . . . . ;
A separate program, 'DUPINS', exists to facilitate the duplication of
instrument definitions in edit files. DUPINS expects that the
word INSTRUMENT appears at the beginning of a line and the word END also
comes at the beginning of a line. (Be careful that if the word END is
used anywhere else inside of an instrument that it does not appear at
the start of a line.)
DUPINS will ask you how many duplicates of a given instrument you may
want. The duplicates will have names wherein the last letter advances
alphabetically. Thus the limit is 25 duplicates of an instrument whose
name ends with the letter A. Example: INSTRUMENT BLURB duplicated
three times would produce BLURC, BLURD and BLURE in addition to BLURB.
************* LIT (do not use with P2) *************
****** When using the code word LIT the literal material need not be
surrounded by quotes. However if quotes are not used special
characters must be used to avoid confusion in the role of "/", ","
and ";" in your lists. If quotes are not used, % must used where a
literal / is desired to be printed, a ! must be used where , is
desired, ? must be used where a ; is desired and & must replace ".
Clearly it is simpler to use the quotes with these various characters
unless the quote sigh itself is required in a string of characters.
% = / ! = , ? = ; & = " # = <
If literal data is surrounded by quotes no special characters are
needed. Entries must be separated by slashes. Extra slashes will
repeat items, but 'X' or 'REP' may not be used for repeats.
However, as with 'NOTES', 'RHY', 'NUM' and 'FUNC', any series of
entries will loop until changed at some later begin time. The
series of literal items must be ended with a ';'.
Example: P12 LIT/
"P4*2" ///"P4*3"/"P5/3"/ < First item will be used 3
times.
"P11+5"/",-52"; < A negative value with nothing in front
of it must be preceded by a comma in any literal data.
The same input could appear without quotes as follows:
P12 LIT/P4*2///P4*3/P5%3/P11+5/!-52;
(/"A"// or /"A"/; will cause the 'A' to appear twice.)
*************** NUM (use with any parameter) *************
This works exactly the same way as 'NOTES' except that numbers only!
may be typed. 'NUM' is useful in setting strings of note durations
or amplitudes without regard to musical terminology. Lists of numbers
may also include calls on other parameters by entering Pn in the
list.
Example: P5 NUM/100/200//300 X 10/452; ';' ends the list.
P12 NUM/1000/P7//2000/P5 X 6;
In the above example, P12 will print the contents
of P7 for the 2nd and 3rd notes. The last 6 notes
will print the contents of P5.
********** FUNC (do not use with P2) **********
This works as above. Functions 1 through 15 are available. Do not!
use 'F' with the function numbers in this case only!
Example: P7 FUNC/3//4 X 4/5/REP 3,2; <=F3,F3,F4,F4,F4,F4,F5,F4,F4,F5.
';' ends the list.
********** SECTION 6 **********
***** RLIST (RANDOM LIST OF NUMBERS) *****
With RLIST a sequential list of random selection ranges of ordinary
numbers may be entered. The list is terminated by a ';'.
***** The repeat of a unit by means of a slash may be used but
REP must !!not!! used. 'Motives' are possible. (See Sec.7)
EXAMPLE: P4 RLIST/50,200//1000,1000/700,900;
***** RNOTES (RANDOM LIST OF NOTES) *****
RNOTES has the same features as above but using note names for the
ranges.
EXAMPLE: P3 RNOTES/C4,CS/E,GS//B,F5/D3,D;
***** REP or X (N1,N2,N3); *****
'REP' or 'X' is used in conjunction with a parameter number to repeat
any previously entered data into the current parameter. In the
following examples assume that 'ZAP' is instrument 2.
If no number follows 'REP', data of the same parameter number of the
previous instrument will be repeated. If one number is used, it will
be a parameter number of the previous instrument. If 2 numbers
appear, the second will be an instrument number. A 3rd number will
cause the data to be repeated for all following instruments through
the number given.
Example:ZAP ;
P2 REP; < P2 of ZAP will have same data as P2 of previous inst.
P5 REP 7; < Repeats data of P7, previous inst.
P8 REP 5,2; < Repeats data of P5, inst 2.
(i.e. ZAP. See below re.';')
P9 X 4,1 5; < P4, inst1, repeats in this and all insts up
to inst 5.
P10 X 6,3; < Repeats P6 data, inst3
(This data must already have appeared above.)
>>>>>> N.B. Use REP with MOVE data only if the begin times of the
instruments involved are the same. See Sec. 10 for other
information regarding 'REP'. (Also see 'DUPL', Sec. 10.)
To repeat data from one parameter to another within a single
instrument the semicolon (or slash) alone may be used.
Example: P12 1.23; < No other data may appear between this and
the next line.
P7 ; < Repeats data of P12. Be sure a space precedes
';'.
When using any kind of random selection 'REP' will repeat the limits
of selection only, not the particular choices made.
To repeat the choices themselves use '-9999.PN' (See Sec. 2).
Example: P4 1 10,100; < P4 chooses a number between 10 and 100.
P12 P4; <The choice of P4 will also appear in P12.
********** SECTION 7 **********
*********** MOTIVIC REPEATS [ ( ), @, $, - ] **********
When any motivic group of items appearing in RHY, NUM, NOTES, FUNC,
LIT or DF is to be used several times the group may be associated
with any letter of the alphabet by surrounding it with parentheses
The identifying letter must precede the left parenthesis and the
right parenthesis must follow the last item to be included in the
group.
Example: P3 NOTES/A4/ Q (BF/D5/F/D )/ G4/ etc.
From this point on the motive Bb-D-F-D may be entered by simply
typing / @Q /. The '@' sign must always immediately precede the
identifying letter. When '@' is used only a single letter may
appear. However the various repeat features may be applied
thereafter. / @Q/REP 2/ would create /BF4/D5/F/D/F/D/, i.e. the last
two items of 'Q' would be repeated.
In the above example @Q could also be used in any following
instrument to enter that sequence of notes.
It is possible to nest motives. In the following 'X' will include
'Q'.
Example: / X (E4/ @Q / E )/
>>>>>>>> N.B. In this case the octave (5) number of the last item of
the Q motive will never carry over into the next note. Rather, the
last actual number given (4) will hold until changed.
In the following, motive 'J' will include motives 'M' and 'K'.
/J( M( E4/G/A )/ B/K( BF/C5/D )/ F )/
| |________| |_________| |
|________________________________|
N.B. No more than 2! left parentheses may be open at one time. The
right parentheses always will close off the nearest left parenthesis
which is still open.
XXXXXXXX TRANSPOSITION XXXXXXXXXXX
(NONE of these tranformations may be used with 'LIT'!)
MOTIVIC TRANSFORMATIONS may be created in several ways. A number may
be added after the identifier. /@Q 12/, /@Q -5/, /@T .3/
If the motive is appearing in NOTES the number will refer to the
number of 1/2 steps transposition to be made. In the 1st case above
the notes of Q would now appear 8va higher; in the 2nd case, a
perfect 4th down (-5 1/2 steps.)
XXXXXXXXX AUGMENTATION, DIMINUTION XXXXXXXXX
If the motive appears in RHYTHM, NUMBERS or DF, the added number will
become a multiplier. If 'T' were established as follows:
p7 NUM/ T(111/ 222 / 300 ) ;
/@T .3/ would produce / 33.3 / 66.6 / 100 /.
***** Note that any multiplier in the time or rhythmic domain will
simply multiply the note durations. Thus a 3 would make all notes 3
times longer, .333 would make them 1/3 as long.
XXXXXXXXXX RETROGRADE MOTION XXXXXXXXXX
Motives may be used in retrograde motion by simply typing '-' before
the identifier. /@-Q/ causes motive Q to be played backwards.
XXXXXXXXXX INVERSION XXXXXXXXXXX
When using NOTES it is possible to invert motives by inserting '$'
before the identifier. /@$Q/ will give an exact intervallic
inversion of motive Q. If Q included the notes /C4/D/EF/, /@$Q/
would produce /C4/BF3/A/. Note that if the retrograde is used at the
same time as '$', the inversion will turn on the last note of the
original motive. Thus /@$-Q/ produces /EF4/FF/GF/ (i.e. Eb,Fb,Gb).
Note that the intervals of chords will invert just as melodic lines.
A C - E - G chord will invert to C - A flat - F.
Transposition may be done at the same time! /@$-Q -6/ means that Q
will be inverted, played backwards and the 1st note to be heard will
be transposed down 6 half steps (a tritone) from the original. Thus
the notes will be /A3/BF/C4/.
(CURIOUS RESULTS ARE PRODUCED WHEN INVERSION IS APPLIED TO RHYTHMIC
MOTIVES. THE FIRST REAL TIME VALUE SERVES AS A PIVOT AND ALL OTHER
REAL TIME VALUES ARE PRODUCED BY ADDING THE PIVOTAL VALUE TO THE
DIFFERENCE BETWEEN THAT VALUE AND EACH OTHER VALUE. IF THE REAL TIME
VALUES WERE .5 .25 .1 1 1.25 THEY WOULD INVERT TO .5 .75 .9 0 AND
-.25. THUS THE LAST ONE WOULD BECOME A REST AND THE ONE BEFORE IT
WOULD HAVE NO TIME VALUE. THIS SEEMS TO HAVE LIMITED USEFULNESS!)
********** SECTION 8 **********
**************** MOVE, MOVX, MOVP *******************
MOVE may be used for gradual changes from one number (or note) to
another or from one range of random selection to another. MOVE works
on a straight line basis. Use MOVX if an exponential curve is
desired.
If no random element is involved, 3 to 1 numbers may be typed on each
line.
Example: P3 MOVE/3 C4,D5; < In 3" moves from C4 to D5.
';' ends MOVE. P3 will stay at D5.
P4 MOVX/12 100,1000/ < In 12", moves exponentially from 10
to 1000.
10 1000,70; < In 10", from 1000 to 70. ';' Ends list.
P4 stays at 70.
P5 MOVE/15 1000/ < Stays at 1000 for 15".
2500; < Holds at 2500 until end or later change.
For changing random ranges type 5 numbers on each line. You should
type a duration (in seconds), a lower and upper limit for random
selection at the beginning of the time and a lower and upper limit
for random selection at the end of the duration given.
When ALL the durations given have passed, the parameter will continue
to choose from the last selection range.
IF A SLASH OR SEMICOLON APPEARS WITH NO NEW DATA BETWEEN IT AND THE
LAST ONE, THE DATA LAST GIVEN WILL BE REPEATED.
P7 MOVE/10 100 2000/ / 5 2000 50;
THE 100 TO 2000 MOVE WILL OCCUR TWICE.
EXAMPLE: If you should want the amplitude to gradually increase from
any number between 200 and 300 up to the number 1200 over a period of
15 seconds and then return to the range 300,350 over the next 10
seconds type the following:
P4 MOVE/ < Upper limit moves from 300 to 1200, lower from
200 to 1200.
15 200,300 1200,1200/
10 1200,1200 300,350/ < Now moves to new limits.
';' will end the list.
N.B. You may not! mix the 2 types of entries used with MOVE or MOVX.
If any units contain 5 numbers, they all must!
MOVE (but not! MOVX!!) may also be used with 'P32'. In this case
only 3 numbers may be used in each MOVE unit. To gradually shift
from no rests to 80% rests in 20 seconds, then back to 20% rests in
the next 13 seconds type:
Example: P32 MOVE/20 0 .8 /13 .8 .2;
Note that the first time value in MOVE will start from whatever begin
time was last given for that instrument regardless of the
instrument's original begin time.
Example: ZAP 23.4; < Next data begins at time 23.4"
P6 MOVE/
12 100 350; <P6 moves from 100 to 350 during time 23.4
to 35.4". ';' will end the list.
***** MOVP **********
This is a rather special form of MOVE which allows for a gradual shift
from the selection of one parameter, or one group of parameters, to
another parameter or group.
P12 MOVP/20 7,8.9 8,10.9;
This will cause a moving random selection within the given
limits over a period of 20 seconds. At the beginning P12
will use whatever is in P7 or P8. As time progresses the
possibility of choosing P7 becomes less and less until at
time 20 only P8, P9 or P10 will be chosen.
******* WARNING !!!! ********
Problems (round-off errors) can occur with MOVE begin times if the
instrument does not have its first begin time at time 0. If a rest
is needed as the first note for an instrument using MOVE it is best
to put it into P2 and then have the instrument start at time 0.
Be sure to proof read carefully.
********** SECTION 9 **********
********************* FUNCTIONS AND SCORE SUBROUTINES ****************
There are two ways to add special program routines to SCORE note lists.
The first way is to write functions in the ALGOL-like language which is
built into the MUSIC program. The second way is to add a user-written
FORTRAN subroutine to the SCORE program.
*********** MUSIC PROGRAM FUNCTION ROUTINES ********************
Some other examples of music program functions appear in
USEMUS.DOC[DOC,LCS] and MUSIC.DOC[DOC,LCS]. The rules involved are
those of the simpler applications of the 'SAIL' language. These
functions can be written in separate files, independant of the SCORE
program.
For the following purposes be sure that the function appears in each
parameter list AFTER! all parameters involved have been established.
The word "PRECEDE;" causes all text following, up to the appearance
of the * in column one, to be found before the word "PLAY;" in the
score. (See section 11.)
PRECEDE;
VARIABLE W,Y,Q; <***** SETS UP NEEDED VARIABLES
Q←W←Y←0; <***** INITIALIZE VARIABLES
FUNCTION RMBR;
BEGIN
ARRAY Z(200); <** INTERNAL STORAGE ARRAY [1ST LOC. IS Z(0)]
IF P1< 3 THEN BEGIN <DO NEXT LINES ONLY DURING FIRST 3"
IF Q=P3 THEN P3←P3*2; <IF SAME NOTE TWICE, SHIFT 1 OCTAVE UP
Z(W)←P3; W=W+1; Q←P3; <STORE THE PITCH, UPDATE COUNTER
RETURN; <GO BACK TO MAIN PROGRAM
END;
P3←Z(Y)/3; <NOW IN INST.2 PUT STORED PITCH INTO P3
Y=Y+1; <UPDATE INST.2'S COUNTER
END;
*
TOOT 0 2;
P2 .15;
P3 1 C4 B7; <TOOT WILL HAVE 2" OF RANDOM NOTES
P4 1000;
P5 F1;
P6 F3;
P7 "RMBR"; <THE PITCHES WILL BE STORED BY FUNCTION RMBR
END;
CLAR 3 5;
DUPL 1; <CLAR BEGINS AT TIME 3"
P6 "RMBR"; <RMBR PUTS BACK PITCHES INTO P3
P7 F4;
END;
The following example sets up a function which can be used to generate
any form of equal tempered scale. The 3 arguments to the function, BF,
SN and OD can be given as fixed numbers or as parameter numbers.
PRECEDE;
COMMENT: FUNCTION MICRO(BASE_FREQ, STEP_NUM, OCT_DIV)
OCT_DIV = NUMBER OF EQUAL DIVISIONS OF THE OCTAVE.;
FUNCTION MICRO(BF, SN, OD);
BEGIN
BF ← BF*EXP(SN/OD * ALOG(2.));
COMMENT: the above gives BF times 2 to the power of (SN/OD);
PRINT BF; COMMENT: this prints the frequency in Hertz.
END;
* This ends the insert. The * will not appear in the score.
TOOT ;
P2 RH/15X15/4; <using 15th note rhythms.
P3 C4; <microtone scale will start on middle C.
P4 1000;
P5 F1;
P6 F3; <next parameter gives the steps of the scale.
P7 NUM/0/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/FINE;
P8 15; < the octave is divided into 15 equal-tempered parts.
P9 "MICRO(P3,P7,P8)";
END;
***** SUBL,(Subroutine,Letters), SUBN(Subroutine,Numbers) *****
The second way to add special features to SCORE is to add FORTRAN
subroutines to the main body of the 'SCORE' program to set values for
P2 through P30. A subroutine may be called from several different
parameters. The codes 'SUBL', 'SUBN' determine the form of the
output for the calling parameter. The heading for the subroutine
must be exactly as follows:
SUBROUTINE SUBR
COMMON /INS/ INST(27),BG(60)
COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
C INST=INSTRUMENT NAME, BG=BEGIN TIME OF EACH INST.
C INUM=INST# IPAR=PARAM# BT=BASIC TIME P1 WHEN SUBROUTINE IS
C CALLED, IF IREST IS <0, THAT NOTE WILL BE A REST.
C NOTE #S IN SUBROUTINE:(1-84) C1=1 C4=37 FS4=43 C5=49 B7=84 R=85
C FUNCTIONS ---- F1=86, F2=87, . . . . F15=100 (NO F16!)
'CNT' is the note number for each instrument. 'BT' is the 'basic'
begin time (i.e. uneffected by 'TEMPO' or 'TF') of each note.
To call the subroutine from any parameter type: P4 SUBN; P7 SUBL; etc.
If the last parameter of an instrument calls the subroutine, all the
other parameters may be reset in relation to each other in any way
seen fit. (This is not true when a duty factor (DF) is involved. If
the duty factor is used or changed in the subroutine the parameter
used to call the subroutine must came LATER.)
The PL array is used to show the type of printout desired for each
parameter. If there is to be no change from the original state, PL
may be ignored. If you wish to change 'NOTES' input to a number, set
PL(n) [n is the param. number] to 1.
P(3)=445.
PL(3)=1. If P3 had been printing 'NOTES' data,
at this point the number 445 would
print.
To cause the printout of a tempered scale note name or a function
number set PL(n) to 2.
P(3)=20. The original mode for P3 was numbers.
PL(3)=2. Printout will be G/4.
P(7)=89.
PL(7)=2. P7 will print as F4.
To make the change to a 5 character literal printout, change PL(N) to
3.
P(5)='CS/4' Regardless of the original form of P5
PL(5)=3. It will now print those characters.
(up to 5)
NOTE THAT TO PRINT OUT LITERALS CREATED BY THE SUBROUTINE
PL(n) MUST BE SET TO 3 -- EVEN IF THE CORRESPONDING PARAMETER
WAS ORIGINALLY USING SOME SORT OF LITERAL!!!!!
### never alter PL(2)!!! ←←←
If some interaction between instruments is desired there are many
ways to move parameter information around. The use of dummy
parameters (those which are not used in any instrument) which call
the subroutine is a good way to store parameter data for later use.
!! SPECIAL PROBLEM with P2 !! If P2 is set with 'P2 SUBN;' all
TEMPO changes will effect the note durations in the usual manner. If
P2 is reset during any other subroutine calls TEMPO changes will not
be effective. Also 'duration' set in seconds may have to be adjusted
to 'real time' values.
Use the duration array, DUR(n), to cause any instrument to end
prematurely. ('n' refers to the instrument number.) Whenever P(1)
equals or exceeds DUR(n) no more notes for that instrument will be
printed. Thus to cause an ending, set DUR(n) to zero one note before
the desired ending.
************** LOADING THE SUBROUTINE ************************
After you have written your FORTRAN subroutine you must load it in
the following manner. Type:
LOAD SUBR,SCORE[SCR,LCS]
If you have made any programming errors the normal FORTRAN messages
will appear. If the program compiles and loads successfully you
should 'save' it immediately. To do this type:
SAVE SCORE
This will save SCORE with your subroutine on your disk area. To run
it then type:
RUN SCORE
(R SCORE gets the system SCORE, RUN SCORE gets your copy.)
The following subroutine is included in SCORE.SAV (which you get when
you type R SCORE.) In order to use this routine P11 and P12 must not
be required by the instrument since they are used to transmit numbers
and to call the subroutine.
C***** THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS
SUBROUTINE SUBR
COMMON /INS/ INST(27),BG(60)
COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF
C CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
X=P(3)
IF(PL(3).EQ.1)GO TO 1
X=30.868*2**(P(3)/12)
C X=FREQ. IN HZ. BASED ON NOTE # IN P3 (OR GIVEN FREQ.)
PL(3)=1.
C THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
1 P(3)=X*2**(P(11)/P(12))
C P12=# OF DIVISIONS OF THE OCTAVE. P11=CHROMATIC STEP IN THAT DIV.
RETURN
END
C STEPS ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
C CLAR ; P2 .3; P3 A3; P4 1000; P5 F1; P7 F4;
C P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE;
C P12 9 SUBN; END; OCTAVE IS DIVIDED INTO 9 PARTS.
Note that if notes of the tempered scale are chosen by random means
it is quite possible that note numbers coming into the subroutine
will not be simple integers. In most cases it is best to change
these numbers to integer form before doing other steps in the
subroutine. If the notes are in P3, simply include in the subroutine
a line such as J=P(3) and then use J for the value of the note
number. Of course some number must be put back in P(3) before
leaving the subroutine.
****** CUTOFF N1, N2 ******
CUTOFF may be used in any parameter, not required by the instrument
involved, for the purpose of causing random note durations to end at
a specific time. Two numbers should follow the code word. The 1st
number is the cutoff time (in BASIC TIME) and the 2nd number affects
the duration of the last note before the cutoff.
Example: P2 1 .1 .2; P12 CUTOFF 8 .1;
This will cause some note to end at exactly 8". The last note before
time 8" will be in the range of .1" to .3", i.e. in the range from
the lowest number in the random limits up to the highest number, plus
or minus N2 (the 2nd number in P12 above.)
********** SECTION 10 **********
xxxxx DUTY FACTOR (DF) xxxxx
DF CAN SERVE FOUR PURPOSES. IF DF IS GREATER THAN ZERO AND LESS
THAN 100 (THE USUAL USE OF DF) NOTES WILL SOUND ONLY DF% OF THE
TIME STATED IN P2. In this case, DF should not exceed 1 (i.e. 100%)
unless some provision is made re. overlapping notes of one instrument
(usually forbidden). (SEE 'NAMES' IN SECTION 6.)
***** if DF is made negative, the absolute value of DF will be
the duration of a rest following each note.
***** if 100 is added to DF, DF-100 will be the fixed duration
of each note. A following rest will fill the time remaining
before the next note. NO OVERLAP CAN EVER OCCUR.
In both this and the previous situation, if the total
original note duration is less than the value of DF, then
no change will take place. IF A REMAINING VALUE IS ZERO OR
LESS, P2 WILL BE CHANGED TO P2/2.
***** if 200 is added to DF, DF-200 will be the fixed duration
of each note. A following rest will fill the time remaining
before the next note. OVERLAPS ARE ALLOWED TO OCCUR HERE.
***** if 1000 is added to DF, DF-1000 will be the fixed amount of
time added to each note. Thus if P2 has a series of values,
1, 2, 3, 4 and DF is set to 1000.5, the attack times will
be as given in but the sounding duration of each note will
be 1.5, 2.5, 3.5, 4.5. ***** You MUST use 'NAMES' in any
case where an instrument overlaps itself!!!
Normally DF=1, i.e. The envelope for a .5" note will last exactly
.5". If DF=.3, the envelope will last .15" (i.e. .5*.3) followed by
.35" of silence. 'DF' may be set with any of the ways of dealing
with simple numbers. 'DF' should appear immediately after the
parameter number (and a space), then any other code word pertaining
to numbers may be used. (Use any parameter not needed by the
instrument.)
Example: P6 DF NUM/ < List of numbers will be duty factors.
1/.5/.7/1;<If P2=.5, a notes will all start at .5"
intervals.
or: P6 DF MOVE/10 1 .3; <The duty factor changes.
or: P6 DF .7; < The duty factor remains at 70%.
overlap occurs if DF > 1.
P6 DF -.1; < all notes followed by .1" rest
never overlaps
P6 DF 100.2; < all notes sound for only .2"
never overlaps
P6 DF 203.; < all notes sound for exactly 3".
overlap can occur
P6 DF 1000.3; < all notes have .3" added.
overlap will occur
**** NOTE: DF affects P2 only. TEMPO changes affect DF only when
it is used in the first sense discussed, i.e. as a
percentage of the given P2 values. In the other 3
cases DF gives REAL TIME values.
instrument to play more than one note at a time. With the 'SCORE'
program it is possible to get around this restriction because each
If DF causes an instrument to overlap with itself the name of the
instrument involved wiil be altered by raising the last letter in the
name one step up the alphabet. Thus if your instrument name were ZIPA
and an overlap were detected the next appearence of that instrument
would be under the name ZIPB, etc. There is a special program
(DUPINS) for the purpose of making duplicate instrument definitions
with an alphabetical change on the last letter of each name. For the
use of 'DUPINS' see Sec.5.
*************** INVISIBLE *********************
If the letter I (or the whole word INVISIBLE) is found after an
instrument name, that instrument name, as well as P1 and P2, will
not! print in the score. This is useful for entering changes in SEG
or SYNTH that are to follow set time patterns. When using INVISIBLE,
P3 should usually have some identifier in quotes. If for any reason
it were desired to have the values of P1 and P2 appear after P3,
simply set P4 P1; and P5 P2;. Then consider that what would normally
be P3 will now be entered as P6, etc.
DUM1 INVIS 0 10; The name DUM1, P1 and P2 will be invisible.
P2 1; The two instrument names will
P3 LIT/"GLISS"/"BLOP"; alternate from note to note.
P4 P1; P5 P2; P4 and P5 will print P1 and P2.
- - - etc.
See SEG and SYNTH for further use of INVISIBLE.
*******Note that Tempo Factor changes will not!! show up when P2 is
transferred to some other parameter.************
%%%%%%%%%%%% IE %%%%%%%%%%%%
IE (Invisible End) used in the same way as IN makes the end of a
note's printout become invisible instead of the beginning. Thus if
you use IE in one instrument and then IN in a dummy instrument
immediately following it is possible to deal with instruments which
have more than 30 parameters. The first 30 parameters will be in the
first instrument's list but IE will suppress the final semicolon.
Then the dummy instrument will have an IN which will cause its name
and first 2 parameters to be invisible. Thus parameter 31 for your
large instrument will be in the P3 slot of the dummy, etc. (Note that
the end of your IE instrument will print out on the CRT but it does
not print in the .SCR file which will be read by the MUSIC program.
***** DUPL N; *****
Use this for duplicating instruments already set up. This is similar
to 'REP' except that all the parameter data entered to this point
will be copied. 'DUPL' must appear just after an instrument name. A
different begin time may be given the new instrument. The parameter
data in effect at that time will be duplicated, but all further
changes must be dealt with in the ordinary ways. (For MOVE data to be
properly interpreted, the begin times of instruments involved must!
be the same.)
Example: ZAP2 1,30; Starting with note 30 of instrument 1 all
DUPL 2; instrument 2's data will be copied by ZAP2.
P7 25; END; Any parameter may be reset immediately.
Once a parameter is set by 'DUPL' or 'REP' it will continue to follow
any changes occurring in the original or leading instrument unless
the parameter has been reset in the instrument at hand.
BUZZ 0 20; P2 1; P3 C4; P4 400; END;
ZAP 0 20; DUPL 1; P3 E4; END; P3 has been reset.
BUZZ 10; P3 G4; P4 500; END; P4 of ZAP will go to 500, P3 of ZAP
will not change.
'DUPL' will not duplicate 'TAP' input. (In some cases '-9999.02'
could be used.)
***** ALL *****
If several parameters are to be the same for all instruments the word
"ALL" may be inserted after any parameter number. The data in that
parameter will then appear in all instruments with a higher
instrument number used. If some instruments are not to use the "ALL"
data, their data may be entered in the usual way on a later line. It
will override the "ALL" data.
BUZZ 0 1 12 ALL; P2 ALL 1; P3 C4 ALL; P4 200 ALL; END;
This data for all unless changes appear.
HISS ; P3 G4; END; 'HISS' changes P3 to G4.
ZAP 0 1 18; P2 .7; END; 'ZAP' plays 18 NOTES, P2=.7"
TOOT ; RUN; 'TOOT' uses all data of 'BUZZ'.
Special care must be taken when using 'MOVE' with 'ALL'.
Check your score carefully. "ALL" will not work with P31.
********** SECTION 11 **********
***** 'SEG' and 'SYNTH' *****
If any functions are to be redefined in the course of a score, by
means of the INVISIBLE feature, 'SEG' and 'SYNTH' may be treated as
'instruments' -- with the difference that P1 and P2 will not be
printed out. P3 will be reserved for the function name plus the
';'. This data must appear with quotes. (See Section 10.)
Using 'SYNTH', suppose you should wish to change from a mixture of
66% fundamental and 34% 2nd harmonic to 0% fund., 34% 2nd harmonic
and 66% 3rd harmonic over a period of 20 seconds at 1 second
intervals.
Example: DUMY1 INVIS 0 20;
P2 1;
P3 "SYNTH(F1);"; Sets the function number.
P4 1; The first semicolon in the line above is part
of the data.
P5 MOVE/20 .66,0;
P6 2; P7 .34; P8 3; P9 MOVE/20 0,.66;
P10 999; END; SYNTH data must always end with '999'.
If the number of parameters needed for 'SYNTH' is to vary from
time to time, set the number to the maximum needed at the beginning
and always set all the unused pairs to 1,0 (fundamental at 0 ampl.).
With 'SEG' there are some special problems since the number of
'steps' must add up to exactly 100 and no numbers may follow the
last amplitude given. Thus if the number of parameters needed is
variable, all those following the last used must contain ';'.
Suppose you wish a glissando rate in F12 to change in 5
steps during 20" from 'SEG(F12);0,1 1,100;' (slow) to 'SEG(F12);0,1
0,80 1,100;' (fast).
Set up 'SEG' with 9 parameters. Set P2 to the times desired for each
change of F12. Use quotes with P3 to enter '(F12);'.
Example: DUMY2 INVIS 0 20; P2 4; P3 "SEG(F12)"; (P4 will be 0)
P5 1; (P6 will be 0)
P7 NUM/1/20/40/60/80;
P8 1; P9 100; END ; No '999' is needed with 'SEG'.
***** Code words not used in conjunction with instrument names *****
INSERT
PRECEDE
EDIT
TEMPO
xxxxx INSERT N1,(N2,N3); xxxxx (Be sure to leave a space before N1.)
This is useful for adding single notes or comments. A total of 19
lines may be added.
A line may be added at a specific point in time or in terms of a note
number.
A single number after insert will be the insert's entry time in
seconds. If two numbers are given, they will be the instrument number
and note number before which the insert will appear. If any 3rd
number is given, 'INSERT' will reproduce several lines of text. To
end the input type '*' in column one of a final line. This will not
appear in the printout.
An entry time in seconds will be in 'basic time', i.e. not affected
by 'TEMPO' or 'TF' changes.
Example: INSERT 2.5; Next line will appear at 2.5" 'basic
time'.
SEG(F2);0,1 1,100;
INSERT 3,45; Next line will appear just before note
45 of inst 3.
PRINT(P4);
INSERT 5,0,1; Next lines will appear at time 5".
P23←526;
RA←0;
RB←0;
* This line will not appear in score.
Up to 75 characters may be entered in each line. A 'comment' for the
score may be typed by beginning the entry with '<' and ending with
';'. If note data is to be inserted, be careful that P1 and P2 are
consistent with the requirements of the music program.
xxxxx PRECEDE; xxxxxxxxx
'PRECEDE;' Will cause an insert to appear before the 'PLAY;'
statement. This is useful for setting up parameters, MUSIC program
functions, or anything which must appear before the PLAY list.
Any number of lines may be typed. The PRECEDE section is
terminated by the presence of a * in column one. See section 9
for an example of the use of PRECEDE.
xxxxx EDIT N1,N2(,N3) xxxxx
'EDIT' allows you to edit any single parameter (except P1) already
written in the score or you may replace the entire list of parameters
for any given note. 'EDIT' supercedes all choices made by other
means.
N1=inst number. N2=note number. N3=parameter number.
If you type only 2 numbers (inst & note numbers), you will have to
insert the instrument name and all! parameters for that note and what
you type will appear exactly as is in the score. Be sure that P1
and P2 are correct. 75 spaces may be used. If you also type the
parameter number, you may enter new data for that parameter and note
only.
When P2 is edited it may only be a number. (Also - P2, when edited,
will not be affected by 'TEMPO' or 'TF'changes.) P3-30 may use up to
5 characters. What you type will appear as is. Do not use quotes.
N.B. If note pitches are edited (using the tempered scale) they must
be entered as C, C/2, CS*4, etc., not as C4, C3, CS6, etc.
xxxxx TEMPO (N) xxxxx
This is used to make TEMPO changes for all instruments at once, 'N'
is begin time (in basic time) of first TEMPO change.
→→→ When TEMPO is used for the 1st time 'N' must!! equal zero. When
'N' is omitted, =0 is assumed. Metronome numbers from 20 up or TEMPO
factors from .1 to 10 may be entered. Any number larger than 10 will
be understood as a MM number.
The duration of a TEMPO change is always in terms of 'basic time',
I.E. when the 'overall TEMPO factor' is 1 or a quarter note=1 sec.
(Of course a quarter note might not equal 1 sec. If TEMPO changes
have been entered with 'RHY'. The important thing is that the TEMPO
factor is '1' until changed by 'TEMPO'.)
Normally, 3 numbers will be given on each line. N1=duration N2=tempo
at start of dur. N3=tempo at end of dur. Up to 30 changes may be
made at a time. The tempo may be set in either of two ways.
Conventional metronome numbers may be used, (I.e. mm=the number of
quarter notes per minute), or the tempo may be set in terms of 'tempo
factors'. The 'tempo factor' 1 is equivalent to mm=60. 'Tempo
factors' must be less than 10, 'mm' numbers must be greater than 11.
If only one number is given after 'TEMPO' it will be taken as a fixed
tempo, not as a duration.
To avoid confusion it is best to enter all TEMPO information in one
string.
Example: TEMPO /20 60/ < 1st 20 beats stay at MM=60
12 60 120/ < accel. to 120 during 12 beats.
20 120/ < stay at 120 for 20 beats.
7 120 40; < retard during 7 beats. Stay at 40.
P1 and P2 values in 'INSERT' and 'EDIT' notes remain unchanged by
'TEMPO' and 'TF' and hence must be reset.
******** SEMICOLONS **********
Many items may be put on one line. Semicolons must separate the items
and the line must end with a ';'.
Example: BUZZ 0 10; P2 1; P3 C4 ; P5 100; P7 0; END;
ZAP 3,15; P5 .73 ; P6 100.2 ; END;
HISS 0 5; P2 .1; P3 1 C4,B; RUN;
→→→→ A new line must always be used after the word 'END' .
********** SECTION 12 **********
********** How to run 'SCORE' **********
To run 'SCORE' type 'R SCORE'. The TTY will respond by typing 'TYPE
FILE NAME'.
You should type the name of the edit file containing all your
parameter data.
Following the file name up to 4 numbers (N1, N2, N3, N4) may be
typed. (See also 'TYPE' and 'EDIT' at end of this section.)
N1=TEMPO FACTOR (TF) N2=amplitude factor (ampfac)
N3=seconds to be omitted N4=duration at cutoff
(If you type 'INFO' or 'HELP' for the file name a resume of the above
and how many instruments are available is typed out.)
If no numbers are typed the following is assumed: N1=1, N2=1, N3=0,
N4=19999.
The following explains the various possibilities.
xxxxx TF xxxxx
The 'TEMPO FACTOR' controls all time elements in the score. If it is
set to 2, all P1 and P2 time will move twice as fast. (I.e. The time
values will be cut in half.) If it is set to .333, all time will be 3
times as long, etc.
'TF' is set at 1 (or MM=60) at start of program.
None of the time values printed at the top of the score are affected
by the overall TEMPO FACTOR.
The 'TEMPO FACTOR' will always automatically reset itself to '1' at
the end of each run. Any values for P1 or P2 set with 'INSERT' or
'EDIT' will not! be changed by 'TF' or 'TEMPO' changes. If such
values are not reset errors will occur in the sound generating
program.
xxxxx AMPFAC xxxxx
This controls the values in P4 only. If amplitude data occurs in
other parameters leave AMPFAC at 1. If you set AMPFAC (N2) at 1.5,
all P4 numbers will be increased by 50%.
If AMPFAC is to be changed but not 'TF', a 1 or 0 must appear for
'TF'.
Example: TTY -- TYPE FILE NAME
You -- ZOOM 0 1.5 <CR>
******* note that if you are using 18-bit samples in the MUSIC
program you should set the amplitude factor to some
number between 32 and 64 in order produce sound within
a practical amplitude range.
xxxxx OMIT xxxxx
Use this for testing small sections of long note lists. Example:
suppose you wish to run only 5 seconds from the end of a 25" list.
Example: ZOOM 0 0 20
Be careful regarding 'INSERT' and 'EDIT' NOTES. The P1 time of such
NOTES is unaffected by 'OMIT'.
Also the 'TEMPO FACTOR' does not interact with 'OMIT' or 'DURATION'.
If you use 'TF' and 'OMIT' together, first get a listing with 'TF'
set as you wish it, then set 'OMIT' according to those time values.
'OMIT' will always automatically reset itself to '0' at the end of
each run.
xxxxx DURATION xxxxx
If you wish to set the actual duration to something less than that
given in the input list type the new duration as the fourth number.
To play the first 10" of a 25" note list type:
ZOOM 0 0 0 10
To play the section from time 6.2" to 12.35" type:
ZOOM 0 0 6.2 12.35
Sometimes roundoff problems occur. Check your note lists carefully.
Next the TTY will type:
'TO DSK=1, TTY=2, BOTH=0, LPT=22, PROOF=3, DEBUG=4'
If you type a '3' the actual duration of the note list will
eventually appear on the TTY and the numbers of items found in the
various lists.
If you type '4', the contents of the 'V array' will be printed.
If you type a second number it will become the initial random number.
If you type any third number it will cause the listing of all input
data to be suppressed. It will not affect the list written on the
disk.
A FOURTH NUMBER WILL CAUSE ONLY THE INSTRUMENT OF THAT NUMBER TO
PRINT OUT IN THE SCORE. THIS IS USEFUL TO TRY OUT A SINGLE
INSTRUMENT OF A MULTI-VOICE SCORE AT A TIME.
Example: TTY -- 'TO DSK=1, TTY=2, BOTH=0, LPT=22, PROOF=3, DEBUG=4'
You -- 2 399 1 2
OUTPUT WILL BE ON TTY ONLY, THE INITIAL RANDOM NUMBER IS 399,
THE INPUT LIST WILL NOT PRINT OUT, ONLY INST.2 WILL APPEAR.
xxxxx TYPE xxxxx
If when SCORE is started you type 'TYPE' instead of a file name a
complete note data-list may be entered directly to SCORE without
recourse to an outside editor. Care must be taken as there is no
provision for backing up to correct an earlier line. After the word
'RUN' is entered all data typed is put into a disk file known as
'TYPED' which may be later edited like any other file. If this
data is to be kept it is advisable to rename the file as any later
use of the 'TYPE' feature will create a new 'TYPED' file.
xxxxx EDIT --- Editing SCORE input as it is read in. xxxxx
If 'EDIT' is given as the file name when SCORE is started each line
of input may be changed. You will be asked again to 'TYPE FILE
NAME'. Now enter the edit file name. As each line appears the
program questions if changes are to be made. 'Y' (=yes) indicates a
change. In this case the complete line, with changes, must be
retyped. A <CR> is taken to mean no changes are desired. No new
lines may be inserted but lines may be lengthed to 72 characters. 'G'
(=go) may be used to escape from this edit mode. If this type of
editing is anticipated when the file is first set up it is advisable
to use very short lines of text.
********** SECTION 13 **********
********* SECTIONS ********
If certain blocks of data are to recur they may be given section
names which can be called upon several times.
SECTION A;
TOOT 0 20; P2 .1; P3 NO/ B4/ A/ G; P4 500; END;
END SECTION;
SECTION B;
BUZZ 0 20; P2 .25; P3 1 C2,G3; P4 800; END;
END SECTION;
BUZZ ; P5 F1; END;
TOOT 5 -4; END; A 4" rest begins after time 5".
PLAY A 9;
BUZZ 7 -3; END;
PLAY B 10;
BUZZ 10; P4 150; END;
TOOT 13; P3 NOTES/ CS5/ DS/ E/ FS; END;
PLAY A 18;
RUN;
Sections are identified by any single character. They are terminated
by 'END SECTION'. In the above example, anytime the data appearing
in 'SECTION A' is to be used after its 1st use the line 'PLAY
A,N1,N2;' must appear. N1 and N2 are numbers used to set the begin
time of each play. If N2 is 0 or does not appear the begin time is
in seconds. If 2 numbers appear, the 1st is an instrument number,
the 2nd a note number.
'SECTION' may be used at any time in the data list. A 'PLAY' may
appear anywhere after a section has been designated. At any time the
data of a section may be over-ridden by listing new data for any of
the parameters. Above, at time 10" P4 of BUZZ will change to 150.
etc.
Be sure to check your score carefully when using this feature in
conjunction with 'ALL', 'MOVE', 'DUPL', and 'REP'.
********** SECTION 14 **********
The following contains examples of most features of 'SCORE'.
THE EDIT FILE NAME WILL BE TEST. (USE UP TO 5 LETTERS.)
TEST.SCR will be the name of the note list.
If the first column is blank the line will be ignored.
BUZZ ; instrument 1=BUZZ, begin time=0", duration=# of notes
in 'NOTES' (P3).
P2 RHY/ RHY=next entries will be in terms of musical rhythm.
4/8/16/1/-8/ quarter note, eighth, sixteenth, whole, eighth rest
4,8/1,16/ dotted quarter, whole tied to sixteenth
8,16 X 5/2 X 3/ five dotted eighths, three half notes
-12/20/ -12=1/8 note triplet rest(1/12 of a whole), 20=1/5 of
a quarter
4//8///-8,16/ two quarters, three eighths, a dotted eighth rest
16//4/8,16/REP 3,5; the previous 3 entries will play 5 times
';' signals the end of the list of entries
P3 NOTES/ notes of the tempered scale may be entered
C1/CS/D/ C1=lowest C on piano keyboard. S=sharp. F=flat.
DS/E/ The octave range will remain the same until changed.
FS4/DS/C/R/ F# above middle C, D#, middle C, R=rest.
DF5//D//// Two Db's in 5th octave, four D's.
C3/G/E/G/X 4,3/ The pattern is played 3 times.
REP 27/ Everything thus far will repeat.
FS6 X 9/FINE; Nine F#'s, 'FINE' marks conclusion for BUZZ.
';' concludes list.
P4 NUM/ A list of numbers will be entered.
100//200/300 X 4/ A total of seven numbers.
50/X 3/P2/ The sequence 300,300,50 will play twice.
REP 12,3; The entire string of numbers entered will play 3
times, including the current data for P2.
P5 FUNC/ A list of functions. (Use only F1 through F15 in a
list).
2//10 X 3/5; =F2,F2,F10,F10,F10,F5. 'REP' may also be used.
Every 'list' must end with a ';'.
P6 LIT/
"P3*P4"/"P3+P4"///Surround items by quotes. 2nd item appears 3 times.
"AS"/",-1"/"1"/; Comma precedes minus sign. There are no REP features
with LIT.
';' will end list. Last item will appear twice.
Next will be random selection of literal strings.
Use no more than two lines.
The 1st of each pair is a % number.
P7 .2 "P3*P4" .3 "P6" .33 "101.3" .17 "2";
20% of the time it will pick "P3*P4",etc.
P8 MOVE/ To move from one number to another over a given dura-
tion.
5 10 150/ During 5" P8 will change from 10 to 150.
3 80 43; During next 3", from 80 to 43.
End with ';'. P8 will stay at last number.(43)
P9 MOVE/
6 CS5 FS4; During 6" P9 will move down from C# to F#.
; After 6" it will stay on F#.
P10 MOVE/20 10,40 100,400/ If there are 5 numbers, the last two pairs
10 30,100 30,30; will be random selection ranges. (see comments)
P11 MOVE/11.4 C2,F2 G3,C5/ Moving ranges of random selection of temp-
ered notes.
3 A4,A4 A4,A4/ Stays on A for 3".
5 A4,A4 C2,F2; Returns to change of departure.
Octave numbers must always be given with 'MOVE'.
END ; Ends entries for this instrument at this begin time.
BUZZ 7.5; Entries beginning at time 7.5"
P7 263.5; This number will repeat for each note until changed.
P5 F11; " function " " " " " " ".
(up to F15 only)
P9 AS3; This note will " " " " " "(no F's)
If param numbers are skipped, they will print
out as zeros.
Next gives random selection within specified ranges.
30% chance between 1 & 4, 22% between 10 & 15, etc.
P13 .3 1,4 .22 10,15 .18 20,30 .3 55,55 ; (P13 was 0 until now.)
Next gives random selection of tempered notes.
P15 .1 CS3,F3 .5 C4,DS4 .4 FS6,B6;
P16 1 10,20; 100% of the time, a number between 10 and 20.
P14 P13; Will repeat selections of P13 in P14.
P17 P2; END; This repeats data of P2.
Ends entries for BUZZ at time 7.5"
TOOT 0 2,15; Inst 2=TOOT, begin time=0",
2,15 means inst2 will play 15 notes.
P2 REP; Will repeat data of previous
instrument for this param number.
P3 REP 9; Repeats P9 of previous instrument.
P5 REP 3,2; Repeats P3 of instrument 2.
(i.e. TOOT. just ';' does the same.)
P6 REP 6,1 4; Will repeat P6 of inst 1 in this
and all insts through #4.
P31 .05; P31 sets random tempo range to + or - .05"
It will never vary more than .05"
P32 .2; END; P32 sets % of random rests.
CLAR 2 9.45; Begin time=2", dur=9.45".
P2 RHY/TEMPO/ TEMPO will be set for this instrument individually.
7 84 112/ Moves from MM=84 to MM=112 during 7".(7 quarter NOTES)
11.3 112 46/ Retards to MM=46 during 11.3".
1 96 96; Shifts to MM=96, stays there.
';' ends 'TEMPO' entries.
4 X 7/8,16/16/REP 2,15; Rhythmic items follow directly.
P3 C4; P4 100; P5 ; P5 will repeat data of param just before.
(Don't use with P31-32)
P32 MOVE/ (the above = rep 3,4/)
4 .1 .5/ Random rests will change from 10% to 50% in 4".
3 .6 0; " " " " " 60% to 0% in 3".
A ';' is needed to end 'MOVE' entries.
END ;
TOOT 2,5; Next entries begin on note 5 of instrument 2.
P2 .2;
P7 REP 4,3; Data of P4, inst 3 will be repeated.
P8 "P3*P4/2+P16"; This literal string will appear for each note.
P10 SUBN; This will call a subroutine and print numbers.
P11 SUBL;END; " " " " " " " letters.
Be sure to leave at least 1 space after 'INSERT' or 'EDIT'.
INSERT 2.3; Line will appear at time 2.3" (basic time!).
P24←21.3*P4+P8/P11; <Up to 75 characters (including
this comment) will appear.
INSERT 2,7; The next line will appear just before note 7 of inst 2.
PRINT P1;
EDIT 1,8,4; The next will replace P4 in note 8 of inst 1.
440 ; Up to 5 characters may be used (don't include the ; !!)
EDIT 3,11;If no param num is given the entire note must be entered.
CLAR 2.3 .13 AS*2 250; <Up to 75 spaces may be used.
Be sure P1&2 are OK.
TEMPO/ 'TEMPO' changes outside of a particular inst will affect
11 72 144/ P2 for all insts. Be sure to check any time factors
6 144 108/ in other params and all data entries
5 108 /72; which are time dependent. ';' ends TEMPO entries.
RUN;
********** SECTION 15 **********
*********** Some Supplemental Programs ************
********* MIXSCR ***********
The SCORE program has several size limitations. For example
only 27 instruments may be used and the main storage array has only
2000 words. Also only 30 parameters are available for each
instrument. By careful use of the 'LIT' feature the parameter list
may be made to exceed 30. Or the INVISIBLE and IE features may be
used. The program MIXSCR allows you to combine any 2 SCORE
output files. Thus if you have work which requires for example 30
instruments or more than 2000 words of storage you could make up 2
separate files involving 15 instruments each. Then, after running
them through SCORE, run MIXSCR to combine them into one SCORE file
for the MUSIC program. The MIXSCR program is self-explanatory.
******************** DUPINS ************************
See Section 5 under CHORDS.
******* PLAY ***********
This program is used for real-time play.
PLAY reads a single sound file (TEST.SND is default name) from the
disk.
The play-back sampling rate is established by the 'header' that is put
on every sound file.
*********************************************************************
*********************************************************************
************ For general information on the MUSIC program ***********
************ see USEMUS.LCS[UP,DOC]. For details on ***********
************ the MUS10 program see MUS10.DOC[MUS,LCS]. ***********
*********************************************************************
*********************************************************************
********** INDEX **********
SECTION NUMBER
ALL . . . 10
AMPLITUDE FACTOR . . 12
BASIC TIME . . . 9,11 RHYTHM . . . 4,10
BEGIN TIME . . . 1 RUN . . . 2,12
BLANK LINES . . . 1,5 SECTIONS . . . 13
CHORDS . . . 5
CODE WORDS . . . 4 SEG . . . 11
COMMA . . . 9 SEMICOLON . . . 1,8,12
COMMENTS . . . 1,11 SPEEDS . . . 15
STAR . . . 11
COUNT . . . 9 SUBROUTINES(SUBN,SUBL) . 9
CUTOFF . . . 9
SYNTH . . . 11
DUPINS . . . 5
DUPLICATE . . . 10
DURATION . . . 1,9,12
DUTY FACTOR . . . 10 TEMPO . . . 4,10,11
EDIT . . . 11,12 TEMPO FACTOR . . . 4,10,12
END . . . 2,5 TYPE . . . 12
FINE . . . 5 X . . . 5,8
FUNCTIONS . . . 2,5,9 ZERO . . . 2
IE (INVISIBLE END). . 10
INSERT . . . 11
INVERSION . . . 7
INVISIBLE . . . 10,11
LETTERS . . . 5
LITERAL . . . 5
METRONOME . . . 4
MIXSCR . . . 15
MOTIVES . . . 7
MOVE,MOVX,MOVP . . . 8
NAMES . . . 6
NOTES . . . 2,5
NOTES,EDITED . . . 11
NUMBERS . . . 2,5
OMIT . . . 12
P2 . . . 4,5,8,9,10,12
PLAY . . . 15
PRECEDE . . . 11
PRINT . . . 11
PROXIMITY MODE . . . 5
RANDOM LISTS . . . 6
RANDOM SELECTION . . 3,8
REP,REPEAT . . . 2,4,6,10
RESTART . . . 1
RESTS . . . 4,5,15
RETROGRADE . . . 7
REVERBERATION . . . 14